#include<iostream>
#include<unistd.h>
#include<sys/types.h>
#include<vector>

//展开命名空间
using namespace std;

//创建10个进程
const int num = 10;

void SubProcessRun()
{
    while(true)
    {
        cout << "I am sub process, pid: " << getpid() << ",ppid: " << getppid() << endl;
        sleep(1);
    }
}

int main()
{
    vector<pid_t> allchild;
    for (int i = 0; i < num; ++i) 
    {
        pid_t id = fork();
        if (id == 0) 
        {
            //子进程
            SubProcessRun();
        }
        //这里父进程执行
        allchild.push_back(id);
    }

    //父进程
    cout << "我所有的孩子是：";
    for (auto child: allchild)
    {
        cout << child << " ";
    }

    cout << endl;

    while(true)
    {
        cout << "我是父进程，pid: " << getpid() << endl;
        sleep(1);
    }
    return 0;
}
